package com.xinsoft.service;

import com.xinsoft.entity.dto.ErpInOrOutStockParam;
import com.xinsoft.entity.dto.ErpNoticeBillParam;
import com.xinsoft.entity.dto.KisApiResultVOS;

import java.util.List;

/**
 * 业务单据推送
 */
public interface SyncPushBillService {


    /**
     * 领料出库
     * @return
     */
    String feedingOutStock(List<ErpInOrOutStockParam> params);

    /**
     * 生产退料入库
     * @return
     */
    String feedingInStock(List<ErpInOrOutStockParam> params);

    /**
     * 生产入库
     * @param params
     * @return {@link String}
     */
    String produceInStock(List<ErpInOrOutStockParam> params);

    /**
     * 委外出库
     * @return
     */
    String sourcingFeedingOutStock(List<ErpInOrOutStockParam> params);

    /**
     * 委外退料
     * @param params
     * @return {@link String}
     */
    String sourcingReturnInStock(List<ErpInOrOutStockParam> params);

    /**
     * 委外入库
     * @param params
     * @return {@link String}
     */
    String sourcingFeedingInStock(List<ErpInOrOutStockParam> params);

    /**
     * 采购入库
     * @param params
     * @return {@link String}
     */
    String purchaseInStock(List<ErpInOrOutStockParam> params);

    /**
     * 采购退货
     * @param params
     * @return {@link String}
     */
    String purchaseOutStock(List<ErpInOrOutStockParam> params);

    /**
     * 其他入库
     * @param params
     * @return {@link String}
     */
    String otherInStock(List<ErpInOrOutStockParam> params);

    /**
     * 其他出库
     * @param params
     * @return {@link String}
     */
    String otherOutStock(List<ErpInOrOutStockParam> params);

    /**
     * 采购收料通知
     * @param params
     * @return {@link String}
     */
    KisApiResultVOS purchaseNotice(List<ErpNoticeBillParam> params);

    /**
     * 委外收料通知
     * @param params
     * @return {@link String}
     */
    KisApiResultVOS sourcingNotice(List<ErpNoticeBillParam> params);

    /**
     * 销售出库
     * @param params
     * @return {@link String}
     */
    String saleOutStock(List<ErpInOrOutStockParam> params);

    /**
     * 库存调拨
     * @param params
     * @return {@link String}
     */
    String inventoryTransfer(List<ErpInOrOutStockParam> params);

    /**
     * 盘盈
     * @param profitList
     * @return {@link String}
     */
    String inventoryProfit(List<ErpInOrOutStockParam> profitList);

    /**
     * 盘亏
     * @param lossList
     * @return {@link String}
     */
    String inventoryLoss(List<ErpInOrOutStockParam> lossList);
}
